Automatic Complexity Analysis for Programs Extracted from Coq Proof
نویسندگان
چکیده
We describe an automatic complexity analysis mechanism for programs extracted from proofs carried out with the proof assistant Coq. By extraction, we mean the automatic generation of MiniML code [3]. By complexity analysis, we mean the automatic generation of a description of the time-complexity of a MiniML program in terms of the number of steps needed for its execution. This description can be a natural number for closed program, that is, programs coming along with their actual inputs. For programs per se, the description is given in terms of a set of recurrence relations which relate the number of steps of a computation in terms of the size of the inputs. Going from these recurrence relation to actual complexity functions is a hard task that requires the use of sophisticated tools for symbolic computations. This part is not implemented for the moment although we have manually used the MAPLE computer algebra system in some cases.
منابع مشابه
A Large-Scale Experiment in Executing Extracted Programs
It is a well-known fact that algorithms are often hidden inside mathematical proofs. If these proofs are formalized inside a proof assistant, then a mechanism called extraction can generate the corresponding programs automatically. Previous work has focused on the dificulties in obtaining a program from a formalization of the Fundamental Theorem of Algebra inside the Coq proof assistant. In the...
متن کاملCombining Coq and Gappa for Certifying Floating-Point Programs
Formal verification of numerical programs is notoriously difficult. On the one hand, there exist automatic tools specialized in floatingpoint arithmetic, such as Gappa, but they target very restrictive logics. On the other hand, there are interactive theorem provers based on the LCF approach, such as Coq, that handle a general-purpose logic but that lack proof automation for floating-point prop...
متن کاملDeveloping Certiied Programs in the System Coq the Program Tactic Developing Certiied Programs in the System Coq the Program Tactic
The system Coq is an environment for proof development based on the Calculus of Constructions extended by inductive deenitions. Functional programs can be extracted from constructive proofs written in Coq. The extracted program and its corresponding proof are strongly related. The idea in this paper is to use this link to have another approach: to give a program and to generate automatically th...
متن کاملImplicit and noncomputational arguments using monads
We provide a monadic view on implicit and noncomputational arguments. This allows us to treat Berger’s non-computational quantifiers in the Coq-system. We use Tait’s normalization proof and the concatenation of vectors as case studies for the extraction of programs. With little effort one can eliminate noncomputational arguments from extracted programs. One thus obtains extracted code that is n...
متن کاملEfficient Finite-Domain Function Library for the Coq Proof Assistant*
Finiteness is an important concept in the computer science. In particular, finite-domain functions are a useful concept for representing various data structures such as finite graphs, finite automata and matrices, and used in quite a few programs. We provide finite-domain function libraries in Coq [12], which improves the efficiency of code extracted from proofs without forcing one to rewrite t...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Electr. Notes Theor. Comput. Sci.
دوره 153 شماره
صفحات -
تاریخ انتشار 2006